package com.ruoyi.crm.domain;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
import java.util.Map;

import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.crm.domain.dto.CrmOrderDTO;
import lombok.Data;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 客户列对象 crm_customer
 *
 * @author yanwenliang
 * @date 2024-10-18
 */
@Data
@TableName("crm_customer")
public class CrmCustomer extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 客户id */
    @TableId(type = IdType.ASSIGN_ID)
    private String customerId;

    /** 客户名称 */
    @Excel(name = "客户名称")
    private String customerName;

    /** 联系人 */
    @Excel(name = "联系人")
    private String linkman;

    /** 职务 */
    @Excel(name = "职务")
    private String duty;

    /** 联系电话 */
    @Excel(name = "联系电话")
    private String phone;


    /** 地区 */
    @Excel(name = "地区")
    private String region;

    /** 客户行业 */
    @Excel(name = "客户行业")
    private String customerIndustry;

    /** 客户级别 */
    @Excel(name = "客户级别")
    private String customerRank;

    /** 客户类型 */
    @Excel(name = "客户类型")
    private String customerType;

    /** 客户标签 */
    @Excel(name = "客户标签")
    private String customerLabel;

    /** 客户状态 */
    @Excel(name = "客户状态")
    private String customerStatus;

    /**
     * 客户归属
     */
    private String customerAscription;

    /** 协同人 */
    private String helpPerson;

    /** 前负责人 */
    private String preOwner;

    /** 归属人 */
    @Excel(name = "归属人")
    private String userId;

    /** 最后跟进记录 */
    private String lastUpdateRecord;

    /** 最后跟进时间 */
    private Date lastFollowupTime;

    /** 下次跟进时间 */
    private Date nextFollowupTime;

    /**
     * 提交状态 （0 未提交 1 已提交）
     */
    private String status;

    /** 删除标记（0 未删除 1 删除） */
    @TableLogic
    private String delFlag;

    @TableField(exist = false)
    private List<CrmOrderDTO> orderList;

    @TableField(exist = false)
    private Map<String, List<CrmOrderDTO>> orderDTOMap;

    /**
     * 商机总金额
     */
    @TableField(exist = false)
    private BigDecimal orderCountAmt;
}
